本文以初学身份对比RequireJS和jQuery来说明前者的优点,若使用其它库,可以“眼动”将jQuery替换为你所用的js库;
“模块化”,实现某一功能的方法独立化,使其可以复用;这一高大上的名词,按我的理解,和jQurey插件的功能一样;那为什么需要学习RequireJS呢?
jQuery,是将jQuery定义为全局变量,在脚本的任何地方都能调用jQuery中的方法;
对比于jQuery,RequireJS的优点就是,可以将各依赖关系(依赖关系---js库,指你需要引用这个库才能做其他功能)声明,并将各个依赖关系作为函数参数处理,即可以把jQuery等js库的作用域定义为局部(函数内部);
RequireJS是为实现模块化存在的,其核心功能有两个:定义模块define()和调用模块require();
定义模块define(),建一个功能库:
//推荐一个模块为一个单独的js文件;
无依赖关系的模块:
define({
name1:'value1',
name2:'value2'
})
无依赖关系,但需要处理一些初始化任务:
define(function(){
})
有依赖关系的模块:
define('module name',[],function(){
//第一个参数为模块名称,可选项--不建议命名;
//[]表示依赖关系的数组列表;
//function(){}回调函数,当指定模块都加载成功后被调用;
//加载的模块以参数形式传入该函数中,从而在回调函数内部就可以使用这么模块;
//参数和模块的数量和次序要一一对应;
//或者通过arguments[]来调用依赖;
//
//require()加载这个模块之前会先加载依赖关系;
//模块应该返回一个本模块/函数 return {
// 属性名:值,
// 方法名:function(){}
//模块名默认为脚本文件名;
//}
})
调用模块require():
require([],function(){
//[]表示依赖关系的数组列表;
//function(){}回调函数,当指定模块都加载成功后被调用;
//加载的模块以参数形式传入该函数中,从而在回调函数内部就可以使用这个模块的属性或方法;
//参数和模块的数量和次序要一一对应;
//或者通过arguments[]来调用依赖;
})
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。